$(document).ready(function(){
    initMask();
    initEnviar();
    initBotoes()
});

function initBotoes(){
    $('#btnVoltar').live('click',function(){
        window.location = '/reserva/consulta';
    });
}
function initMask(){
    $("input[alt]").setMask();
    
    $( "#dia" ).datepicker($.datepicker.regional['pt']);
    $( "#dataFilter" ).datepicker(
        {onSelect: function(dateText, inst){
               onChangeDate(dateText, inst);
           }}
    );
    
}

function onChangeDate(dateText, inst){
    removeMsgErro(new Array("initFilter1"));
    if(dateIsValid(dateText)){
        window.location='/reserva/consulta?data='+dateText;
    }else{
        exibeMsgErro("Data Inválida.","initFilter1");
    }
}

function validaForm(){
    removeMsgErro(new Array("validaForm1","validaForm2","validaForm3","validaForm4"));
    var erros = new Array();
    if(isEmpty($("#nome").val())){
        erros["validaForm1"] = "É necessário preencher o campo 'Nome'";
    }
    
    if(isEmpty($("#telefone").val())){
        erros["validaForm2"] = "É necessário preencher o campo 'Telefone'";
    }
    
    if(isEmpty($("#dia").val())){
        erros["validaForm3"] = "É necessário preencher o campo 'Dia'";
    }else if(!dateIsValid($('#dia').val())){
        erros["validaForm3"] = "A \'Data \' é inválida.";
    }
    
    if(isEmpty($("#hora").val())){
        erros["validaForm4"] = "É necessário preencher o campo 'Hora'";
    }
    
    if(size(erros) > 0){
        exibeMsgErro(erros);
        return false;
    }
    
    return true;
}

function initEnviar(){
    $("#btnEnviar").live("click",function(event){
        event.preventDefault();
        removeMsgErro('initEnviar');
        
        if(validaForm()){
            $.ajax({
                url: '/reserva/reserva/valida',
                data: dataSend(),
                dataType: 'Json',
                type: 'POST',
                contentType: "application/x-www-form-urlencoded;charset=UTF-8",
                success: function(data){
                    if(!isEmpty(data.erros)){
                        for (i = 0; i < data.erros.length; i++) {
                            exibeMsgErro(data.erros[i], 'initEnviar');
                        }
                    }else{
                        $("#form").submit();
                    }
                }
            });
        }
    });
}
function dataSend(){
    return $("#form input,#form select").serialize();
}